package com.tedu.system.service.impl;

import com.tedu.common.exception.ServiceException;
import com.tedu.common.response.StatusCode;
import com.tedu.system.mapper.SystemMapper;
import com.tedu.system.pojo.dto.SystemLoginParam;
import com.tedu.system.pojo.vo.SystemVO;
import com.tedu.system.service.SystemService;
import com.tedu.user.pojo.vo.UserVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**业务层实现类需要添加@Service注解,表示其为业务层实现类*/
@Slf4j
@Service
public class SystemServiceImpl implements SystemService {
    @Autowired
    SystemMapper systemMapper;
    @Override
    public SystemVO login(SystemLoginParam systemLoginParam) {
        log.debug("用户登录，参数：{}",systemLoginParam);
        SystemVO systemVO = systemMapper.selectByUsername(systemLoginParam.getEmpName());
        if(systemVO==null){
            //主业务如果遇到了问题,需要抛出业务层异常,而不是直接给前端返回结果
            //Controller层才是给前端返回结果的那一层
            log.error("empName 参数为空！");
            throw new ServiceException(StatusCode.USERNAME_ERROR);
        }
        if(!systemVO.getPassword().equals(systemLoginParam.getPassword())){
            throw new ServiceException(StatusCode.PASSWORD_ERROR);
        }
        return systemVO;
    }
}
